﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

/*

//	递归方式实现打印一个整数的每一位
void pfall(int a) 
{
	if (a > 9) 
	{
		pfall(a / 10);
	}
		printf("%d ", a % 10);
}
int main() 
{
	int a = 0;
	scanf("%d",&a);

	pfall(a);
	return 0;
}


//	计算一个数的每位之和（递归实现）：输入一个非负整数，返回组成它的数字之和
int DigitSum(int b) 
{
	if (b > 9) 
	{
		return (b%10) + DigitSum(b / 10);
	}
	else 
	{
		return b;
	}
}
int main() 
{
	int b = 0;
	scanf("%d",&b);
	int count = DigitSum(b);
	printf("%d\n",count);

	return 0;
}

*/


//	求阶乘
int facj(int c) 
{
	if (c > 1)
	{
		return c * facj(c - 1);
	}
	else
		return 1;
}
int main() 
{
	int c = 0;
	scanf("%d",&c);
	printf("%d\n", facj(c));

	int i = 0;
	int count = 1;
	for (i = 1; i <= c; i++) 
	{
		count *= i;
	}
	printf("%d\n", count);

	return 0;
}